﻿#define _CRT_SECURE_NO_WARNINGS
/*编写一个算法来判断一个数 n 是不是快乐数。
「快乐数」 定义为：
对于一个正整数，每一次将该数替换为它每个位置上的数字的平方和。
然后重复这个过程直到这个数变为 1，也可能是 无限循环 但始终变不到 1。
如果这个过程 结果为 1，那么这个数就是快乐数。
*/
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>

bool isHappy(int n)//bool布尔类型
{
	int a, sum = 0;
	while (n > 6)
	{
		sum = 0;//经过下一个循环之后sum的值如果不重新设为0就会越来越大甚至超过int的范围
		a = n;//引入临时变量
		while (a)
		{
			int b = a % 10;//获得n的每个位置的数
			sum += b * b;
			a /= 10;
		}
		n = sum;//将sum的值给n，n再给临时变量a，如果a>0,则再次进入循环
	}
	if (n == 1)
		return true;
	return false;
}
int main()
{
	int n;
	int x;
	scanf("%d", &n);
	x = isHappy(n);
	if (x == 1)
		printf("true");
	if(x==0)
		printf("false");
	return 0;
}